iT邦幫忙

2025 iThome 鐵人賽

DAY 27
0
Modern Web

PHP 新手自學筆記系列 第 27

【Day27】 資料庫操作

  • 分享至 

  • xImage
  •  

參考w3schools

在昨天學習到怎麼建立資料庫,接下來要來建立資料庫裡的資料表了,一個資料庫裡面也可以有很多資料表,我們先來建立一個資料表。

每個資料表都會有一個主鍵欄位(PRIMARY KEY),工程師也會稱呼為主key,這個欄位的資料都會是唯一的,不會跟其它人重複,常常會用id這個欄位去代表,也會搭配 AUTO_INCREMENT 讓他自動遞增。

在上次建立資料庫之前 不是要先建立連線嗎

$conn = new mysqli($servername, $username, $password);

這次要在指定的資料庫 新增資料表,所以要先在前面指定要使用哪個資料庫

$dbname="pratice";
$conn = new mysqli($servername, $username, $password, $dbname );

如果你前面忘了指定或是想要動態切換資料庫也可以在後面使用USE這個語法

$conn = new mysqli($servername, $username, $password );
$conn->query("USE myDB");//切換為 myDB 資料庫

在建立資料表之前 先認識一下常用資料欄位Type

類型 資料型態 說明 範例用途
整數 INT 一般整數 (4 bytes) ID、數量
BIGINT 很大的整數 (8 bytes) 金額、流水號
小數 DECIMAL(m,d) 精確小數 (常用於金額) DECIMAL(10,2) → 99999999.99
FLOAT 單精度小數 (近似值) 溫度、比例
字串 VARCHAR(n) 可變長度字串 姓名、Email、帳號
TEXT 大量文字資料 (最常用) 記事、留言
日期/時間 DATE 日期 (YYYY-MM-DD) 生日、到期日
DATETIME 日期+時間 訂單時間
TIMESTAMP 日期+時間,自動更新 (常用) 建立/更新時間
布林 BOOLEAN (其實是 TINYINT(1)) True / False 啟用狀態、是否已讀

認識完常用型態後 接下來就可以正式建立資料表了~ 我們先建立資料表 employees

<?php
$servername = "127.0.0.1"; 
$username = "root";
$password = "";
$dbname="pratice";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname );

// 建立資料表
$sql = "CREATE TABLE employees (
  id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  firstname VARCHAR(30) NOT NULL,
  lastname VARCHAR(30) NOT NULL,
  email VARCHAR(50),
  reg_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
)";

$conn->query($sql);
$conn->close();
?>

TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
這行拉出來解釋一下
TIMESTAMP
→ 欄位型態,存放「日期+時間」(格式:YYYY-MM-DD HH:MM:SS)。
DEFAULT CURRENT_TIMESTAMP
→ 當你「新增資料」的時候,如果沒有指定這個欄位的值,就會自動填入「當下時間」。
ON UPDATE CURRENT_TIMESTAMP
→ 當這筆資料被「更新」時,這個欄位會自動改成「最新的時間」。

資料表建立完之後,就要來插入資料

$sql = "INSERT INTO employees (firstname, lastname, email)
VALUES ('John', 'Doe', 'john@example.com')";

INSERT INTO 是sql的插入語法 在employees的firstname, lastname, email 這些欄位 插入資料
'John', 'Doe', 'john@example.com' 資料的順序很重要哦,他會照順序插入。

插入結果
https://ithelp.ithome.com.tw/upload/images/20251001/20178107Brgx4nqtir.jpg

示例 (錯誤寫法)

$sql = "INSERT INTO employees (firstname,email)
VALUES ('ss', 'sunny@aaa.com')";

if ($conn->query($sql) === TRUE) {
  echo "New record created successfully";
} else {
  echo "Error: " . $sql . "<br>" . $conn->error;
}

可以看到這裡我想插入firstname,email這兩個欄位的值分別是ss,sunny@aaa.com,這本身是沒問題的,但是在前面我們建立資料表的時候有設定

lastname VARCHAR(30) NOT NULL

所以這個值不能是空值,如果要插入新資料的話一定這個欄位一定要有值。


上一篇
【Day26】 資料庫介紹
下一篇
【Day28】 工程師必學 github
系列文
PHP 新手自學筆記30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言